-- 吃饭补贴功能模块
local lrSDK = require("老狼孩插件懒人免ROOT无障碍版")
local cr = require("cr")
local app_config = require("app_config")
local ad_handler = require("ad_handler")

local meal_subsidy = {}

-- 点击吃饭补贴功能
function meal_subsidy.点击吃饭补贴()
    local current_app = app_config.phoenix_read
    
    lrSDK.日志类_调试输出("开始执行吃饭补贴流程")
    
    -- 先进入我的标签页
    lrSDK.日志类_调试输出("尝试进入'我的'标签页")
    local 我的标签 = className(current_app.elements.mine.class_name)
                  :packageName(current_app.package_name)
                  :text(current_app.elements.mine.text)
    
    local 点击结果 = lrSDK.节点类_找节点(我的标签, true, 3000)
    if not 点击结果 then
        lrSDK.日志类_调试输出("无法找到'我的'标签，任务失败")
        return false
    end
    
    -- 等待页面加载
    cr.等待(1500)
    
    -- 点击福利入口
    lrSDK.日志类_调试输出("尝试点击'福利'入口")
    local 福利入口 = className(current_app.elements.benefits.class_name)
                  :packageName(current_app.package_name)
                  :text(current_app.elements.benefits.text)
    
    点击结果 = lrSDK.节点类_找节点(福利入口, true, 3000)
    if not 点击结果 then
        lrSDK.日志类_调试输出("无法找到'福利'入口，任务失败")
        return false
    end
    
    -- 等待福利页面加载
    cr.等待(1500)
    
    -- 可能需要向下滑动才能找到"吃饭补贴"
    lrSDK.日志类_调试输出("向下滑动寻找'吃饭补贴'")
    local width, height = cr.获取屏幕分辨率()
    local params = cr.计算滑动参数(width, height)
    
    -- 向下滑动查找吃饭补贴
    lrSDK.日志类_调试输出("执行向下滑动")
    cr.缓慢滑动(
        params.中心x, 
        params.中心y + params.安全边距, 
        params.中心x, 
        params.中心y - params.安全边距, 
        800
    )
    
    cr.等待(1500)
    
    -- 点击吃饭补贴
    lrSDK.日志类_调试输出("尝试点击'吃饭补贴'")
    local 吃饭补贴 = className(current_app.elements.meal_subsidy.class_name)
                  :packageName(current_app.package_name)
                  :text(current_app.elements.meal_subsidy.text)
    
    点击结果 = lrSDK.节点类_找节点(吃饭补贴, true, 3000)
    if not 点击结果 then
        lrSDK.日志类_调试输出("未找到'吃饭补贴'按钮，尝试再次滑动")
        
        -- 再次滑动
        cr.缓慢滑动(
            params.中心x, 
            params.中心y + params.安全边距, 
            params.中心x, 
            params.中心y - params.安全边距, 
            800
        )
        
        cr.等待(1500)
        
        -- 再次尝试点击
        点击结果 = lrSDK.节点类_找节点(吃饭补贴, true, 3000)
        if not 点击结果 then
            lrSDK.日志类_调试输出("仍未找到'吃饭补贴'按钮，任务失败")
            return false
        end
    end
    
    lrSDK.日志类_调试输出("成功点击'吃饭补贴'按钮")
    
    -- 等待广告或领取页面加载
    cr.等待(2000)
    
    -- 检查并处理广告
    lrSDK.日志类_调试输出("检查是否出现广告")
    local 广告处理结果 = ad_handler.处理广告()
    if 广告处理结果 then
        lrSDK.日志类_调试输出("广告处理完成")
    else
        lrSDK.日志类_调试输出("未发现广告或广告处理失败")
    end
    
    -- 查找并点击"立即领取"或类似按钮
    lrSDK.日志类_调试输出("尝试查找并点击'立即领取'按钮")
    local 立即领取 = className("android.widget.TextView")
                  :packageName(current_app.package_name)
                  :text("立即领取")
    
    点击结果 = lrSDK.节点类_找节点(立即领取, true, 3000)
    if not 点击结果 then
        lrSDK.日志类_调试输出("未找到'立即领取'按钮，尝试其他按钮")
        
        -- 尝试点击其他可能的按钮
        local 领取按钮 = className("android.widget.TextView")
                      :packageName(current_app.package_name)
                      :text("领取")
        
        点击结果 = lrSDK.节点类_找节点(领取按钮, true, 2000)
        if not 点击结果 then
            lrSDK.日志类_调试输出("未找到任何领取按钮，任务可能已完成或失败")
        else
            lrSDK.日志类_调试输出("成功点击领取按钮")
        end
    else
        lrSDK.日志类_调试输出("成功点击'立即领取'按钮")
    end
    
    -- 最后处理可能出现的二次广告
    cr.等待(2000)
    广告处理结果 = ad_handler.处理广告()
    if 广告处理结果 then
        lrSDK.日志类_调试输出("二次广告处理完成")
    end
    
    -- 返回主页
    lrSDK.日志类_调试输出("返回主页")
    lrSDK.触控类_模拟物理按键(4)  -- 返回键
    cr.等待(1000)
    
    return true
end

return meal_subsidy 